

# 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数，
#
# 试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。
#
# 你只能调用 rand7() 且不能调用其他方法。
#
# 请不要使用系统的 Math.random() 方法。
#
# 每个测试用例将有一个内部参数 n，即你实现的函数 rand10() 在测试时将被调用的次数。
#
# 请注意，这不是传递给 rand10() 的参数。
#
# 示例 1:
#
# 输入: 1
# 输出: [2]

def rand10(self):
    """
    :rtype: int
    """
    while True:
        res = (rand7() - 1) * 7 + rand7()  # 构造1~49的均匀分布
        if res <= 40:  # 剔除大于40的值，1-40等概率出现。
            break
    return res % 10 + 1  # 构造1-10的均匀分布

